//
//  SqList.hpp
//  DS_Demo
//
//  Created by apple on 2023/9/28.
//

#ifndef SqList_hpp
#define SqList_hpp
#include "../../include/DS_Define.h"

Status InitList(SqList *L);    // 构造一个空的线性表L
Status DestroyList(SqList *L);   // 销毁线性表L
void ClearList(SqList *L);     // 将L重置为空表
Status ListEmpty(SqList L);    // 线性表是否为空表
int ListLength(SqList L);      // 返回线性表中数据元素的个数
Status GetElem(SqList L, int i, LElemType *e); // 用e返回线性表L中的第i个元素
Status LocateElem(SqList L, LElemType e);  // 定位e元素在线性表L中的位置
Status PriorElem(SqList L, LElemType cur_e, LElemType *pre_e); // 返回当前元素的前驱
Status NextElem(SqList L, LElemType cur_e, LElemType *next_e); // 返回当前元素的后继
Status ListInsert(SqList *L, int i, LElemType e); // 在线性表L的第i个位置之前插入元素e
Status ListDelete(SqList *L, int i, LElemType *e); // 删除线性表L中第i个位置的元素并用e返回
void ListTraverse(SqList L); // 遍历线性表
void UnionList(SqList *La, SqList Lb); // 求两个线性表的并集
void MergeList(SqList La, SqList Lb, SqList *Lc);
void IncSort(SqList *L); // 线性表中的元素递增排序
void DecSort(SqList *L); // 线性表中的元素递减排序

#endif /* SqList_hpp */
